package com.eastjet.maintenance.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;

/**
 * 维修工单表
 * @TableName device_mo
 */
@TableName(value ="device_mo")
@Data
public class DeviceMo implements Serializable {
    /**
     * 维修编号
     */
    @TableId
    private Integer moId;

    /**
     * 状态
     */
    private String moState;

    /**
     * 维修编码
     */
    private String code;

    /**
     * 维修主题
     */
    private String moTopic;

    /**
     * 维修类型
     */
    private String moType;

    /**
     * 关联故障单编号
     */
    private String moFrrId;

    /**
     * 维修负责班组
     */
    private String moClass;

    /**
     * 维修负责人
     */
    private String moPerson;

    /**
     * 其他维修人
     */
    private String moOther;

    /**
     * 备注
     */
    private String noet;

    /**
     * 设备编号
     */
    private Integer equipmentId;

    /**
     * 故障时间
     */
    private Date moOntime;

    /**
     * 故障类型
     */
    private Integer moCrId;

    /**
     * 故障等级
     */
    private String failureLevel;

    /**
     * 是否停用设备(0-启用 1-停用)
     */
    private Integer isStop;

    /**
     * 故障描述
     */
    private String description;

    /**
     * 维修费用
     */
    private BigDecimal moMoney;

    /**
     * 工作描述
     */
    private String jobDescription;

    /**
     * 故障原因
     */
    private String faultOrigin;

    /**
     * 维修等级
     */
    private String repairLevel;

    /**
     * 维修类型
     */
    private String typeRepair;

    /**
     * 紧急程度
     */
    private String emergency;

    /**
     * 开始时间
     */
    private Date startTime;

    /**
     * 结束时间
     */
    private Date endTime;

    /**
     * 维修宗时长
     */
    private Date totalDuration;

    /**
     * 是否更换设备(0-更换 1-不更换)
     */
    private Integer isReplace;

    /**
     * 验收人
     */
    private Integer acceptancePerson;

    /**
     * 验收时间
     */
    private Date acceptanceTime;

    /**
     * 创建时间
     */
    private Date insertTime;

    /**
     * 创建人
     */
    private String insertPerosn;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 更新人
     */
    private String updatePerson;

    /**
     * 逻辑删除
     */
    private Integer isDelete;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        DeviceMo other = (DeviceMo) that;
        return (this.getMoId() == null ? other.getMoId() == null : this.getMoId().equals(other.getMoId()))
            && (this.getMoState() == null ? other.getMoState() == null : this.getMoState().equals(other.getMoState()))
            && (this.getCode() == null ? other.getCode() == null : this.getCode().equals(other.getCode()))
            && (this.getMoTopic() == null ? other.getMoTopic() == null : this.getMoTopic().equals(other.getMoTopic()))
            && (this.getMoType() == null ? other.getMoType() == null : this.getMoType().equals(other.getMoType()))
            && (this.getMoFrrId() == null ? other.getMoFrrId() == null : this.getMoFrrId().equals(other.getMoFrrId()))
            && (this.getMoClass() == null ? other.getMoClass() == null : this.getMoClass().equals(other.getMoClass()))
            && (this.getMoPerson() == null ? other.getMoPerson() == null : this.getMoPerson().equals(other.getMoPerson()))
            && (this.getMoOther() == null ? other.getMoOther() == null : this.getMoOther().equals(other.getMoOther()))
            && (this.getNoet() == null ? other.getNoet() == null : this.getNoet().equals(other.getNoet()))
            && (this.getEquipmentId() == null ? other.getEquipmentId() == null : this.getEquipmentId().equals(other.getEquipmentId()))
            && (this.getMoOntime() == null ? other.getMoOntime() == null : this.getMoOntime().equals(other.getMoOntime()))
            && (this.getMoCrId() == null ? other.getMoCrId() == null : this.getMoCrId().equals(other.getMoCrId()))
            && (this.getFailureLevel() == null ? other.getFailureLevel() == null : this.getFailureLevel().equals(other.getFailureLevel()))
            && (this.getIsStop() == null ? other.getIsStop() == null : this.getIsStop().equals(other.getIsStop()))
            && (this.getDescription() == null ? other.getDescription() == null : this.getDescription().equals(other.getDescription()))
            && (this.getMoMoney() == null ? other.getMoMoney() == null : this.getMoMoney().equals(other.getMoMoney()))
            && (this.getJobDescription() == null ? other.getJobDescription() == null : this.getJobDescription().equals(other.getJobDescription()))
            && (this.getFaultOrigin() == null ? other.getFaultOrigin() == null : this.getFaultOrigin().equals(other.getFaultOrigin()))
            && (this.getRepairLevel() == null ? other.getRepairLevel() == null : this.getRepairLevel().equals(other.getRepairLevel()))
            && (this.getTypeRepair() == null ? other.getTypeRepair() == null : this.getTypeRepair().equals(other.getTypeRepair()))
            && (this.getEmergency() == null ? other.getEmergency() == null : this.getEmergency().equals(other.getEmergency()))
            && (this.getStartTime() == null ? other.getStartTime() == null : this.getStartTime().equals(other.getStartTime()))
            && (this.getEndTime() == null ? other.getEndTime() == null : this.getEndTime().equals(other.getEndTime()))
            && (this.getTotalDuration() == null ? other.getTotalDuration() == null : this.getTotalDuration().equals(other.getTotalDuration()))
            && (this.getIsReplace() == null ? other.getIsReplace() == null : this.getIsReplace().equals(other.getIsReplace()))
            && (this.getAcceptancePerson() == null ? other.getAcceptancePerson() == null : this.getAcceptancePerson().equals(other.getAcceptancePerson()))
            && (this.getAcceptanceTime() == null ? other.getAcceptanceTime() == null : this.getAcceptanceTime().equals(other.getAcceptanceTime()))
            && (this.getInsertTime() == null ? other.getInsertTime() == null : this.getInsertTime().equals(other.getInsertTime()))
            && (this.getInsertPerosn() == null ? other.getInsertPerosn() == null : this.getInsertPerosn().equals(other.getInsertPerosn()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getUpdatePerson() == null ? other.getUpdatePerson() == null : this.getUpdatePerson().equals(other.getUpdatePerson()))
            && (this.getIsDelete() == null ? other.getIsDelete() == null : this.getIsDelete().equals(other.getIsDelete()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getMoId() == null) ? 0 : getMoId().hashCode());
        result = prime * result + ((getMoState() == null) ? 0 : getMoState().hashCode());
        result = prime * result + ((getCode() == null) ? 0 : getCode().hashCode());
        result = prime * result + ((getMoTopic() == null) ? 0 : getMoTopic().hashCode());
        result = prime * result + ((getMoType() == null) ? 0 : getMoType().hashCode());
        result = prime * result + ((getMoFrrId() == null) ? 0 : getMoFrrId().hashCode());
        result = prime * result + ((getMoClass() == null) ? 0 : getMoClass().hashCode());
        result = prime * result + ((getMoPerson() == null) ? 0 : getMoPerson().hashCode());
        result = prime * result + ((getMoOther() == null) ? 0 : getMoOther().hashCode());
        result = prime * result + ((getNoet() == null) ? 0 : getNoet().hashCode());
        result = prime * result + ((getEquipmentId() == null) ? 0 : getEquipmentId().hashCode());
        result = prime * result + ((getMoOntime() == null) ? 0 : getMoOntime().hashCode());
        result = prime * result + ((getMoCrId() == null) ? 0 : getMoCrId().hashCode());
        result = prime * result + ((getFailureLevel() == null) ? 0 : getFailureLevel().hashCode());
        result = prime * result + ((getIsStop() == null) ? 0 : getIsStop().hashCode());
        result = prime * result + ((getDescription() == null) ? 0 : getDescription().hashCode());
        result = prime * result + ((getMoMoney() == null) ? 0 : getMoMoney().hashCode());
        result = prime * result + ((getJobDescription() == null) ? 0 : getJobDescription().hashCode());
        result = prime * result + ((getFaultOrigin() == null) ? 0 : getFaultOrigin().hashCode());
        result = prime * result + ((getRepairLevel() == null) ? 0 : getRepairLevel().hashCode());
        result = prime * result + ((getTypeRepair() == null) ? 0 : getTypeRepair().hashCode());
        result = prime * result + ((getEmergency() == null) ? 0 : getEmergency().hashCode());
        result = prime * result + ((getStartTime() == null) ? 0 : getStartTime().hashCode());
        result = prime * result + ((getEndTime() == null) ? 0 : getEndTime().hashCode());
        result = prime * result + ((getTotalDuration() == null) ? 0 : getTotalDuration().hashCode());
        result = prime * result + ((getIsReplace() == null) ? 0 : getIsReplace().hashCode());
        result = prime * result + ((getAcceptancePerson() == null) ? 0 : getAcceptancePerson().hashCode());
        result = prime * result + ((getAcceptanceTime() == null) ? 0 : getAcceptanceTime().hashCode());
        result = prime * result + ((getInsertTime() == null) ? 0 : getInsertTime().hashCode());
        result = prime * result + ((getInsertPerosn() == null) ? 0 : getInsertPerosn().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getUpdatePerson() == null) ? 0 : getUpdatePerson().hashCode());
        result = prime * result + ((getIsDelete() == null) ? 0 : getIsDelete().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", moId=").append(moId);
        sb.append(", moState=").append(moState);
        sb.append(", code=").append(code);
        sb.append(", moTopic=").append(moTopic);
        sb.append(", moType=").append(moType);
        sb.append(", moFrrId=").append(moFrrId);
        sb.append(", moClass=").append(moClass);
        sb.append(", moPerson=").append(moPerson);
        sb.append(", moOther=").append(moOther);
        sb.append(", noet=").append(noet);
        sb.append(", equipmentId=").append(equipmentId);
        sb.append(", moOntime=").append(moOntime);
        sb.append(", moCrId=").append(moCrId);
        sb.append(", failureLevel=").append(failureLevel);
        sb.append(", isStop=").append(isStop);
        sb.append(", description=").append(description);
        sb.append(", moMoney=").append(moMoney);
        sb.append(", jobDescription=").append(jobDescription);
        sb.append(", faultOrigin=").append(faultOrigin);
        sb.append(", repairLevel=").append(repairLevel);
        sb.append(", typeRepair=").append(typeRepair);
        sb.append(", emergency=").append(emergency);
        sb.append(", startTime=").append(startTime);
        sb.append(", endTime=").append(endTime);
        sb.append(", totalDuration=").append(totalDuration);
        sb.append(", isReplace=").append(isReplace);
        sb.append(", acceptancePerson=").append(acceptancePerson);
        sb.append(", acceptanceTime=").append(acceptanceTime);
        sb.append(", insertTime=").append(insertTime);
        sb.append(", insertPerosn=").append(insertPerosn);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", updatePerson=").append(updatePerson);
        sb.append(", isDelete=").append(isDelete);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}